.pragma library

Qt.include("denunciaCore.js");

var parentPadrao = null;
var itensCriados = new Array();

function retornaParametro(no, nomeParametro)
{
    for (var i = 0; i < no.attributes.length; i++)
        if (no.attributes[i].name == nomeParametro)
            return no.attributes[i].value;
    return "";
}

function montarGroup(no, groupAtual, semGroupContainer, nivel)
{
    for(var i = 0; i < no.childNodes.length; i++)
    {
        if (no.childNodes[i].nodeName != "#text")
        {
            if (no.childNodes[i].childNodes.length > 0 && no.childNodes[i].nodeName != "valor")
            {
                var obj;

                var mostrar = retornaParametro(no.childNodes[i], "mostrar");
                if (mostrar == "")
                    mostrar = no.childNodes[i].nodeName;

                if (nivel == 0)
                {
                    //console.log("Opa! Novo botão: " + no.childNodes[i].nodeName);
                    obj = parentPadrao.adicionarNovaPagina(mostrar);
                    montarGroup(no.childNodes[i], null, obj, nivel+1);
                }
                else
                {
                    var comp = Qt.createComponent("DetalheUsuarioGroupBox.qml");
                    var chave = retornaParametro(no.childNodes[i], "chave");

                    if (groupAtual != null)
                    {
                        //console.log("===========> Subgrupo!" + no.childNodes[i].nodeName);
                        obj = comp.createObject(groupAtual);
                        obj.titulo = mostrar
                        obj.objectName = chave;
                        montarGroup(no.childNodes[i], obj, null, nivel+1);
                    }
                    else
                    {
                        //console.log("====> Adicionando novo group!" + no.childNodes[i].nodeName);
                        obj = comp.createObject(semGroupContainer.containerPadrao);
                        obj.titulo = mostrar;
                        obj.objectName = chave;
                        montarGroup(no.childNodes[i], obj, null, nivel+1);
                    }                    
                }
                itensCriados.push(obj);
            }
            else if (no.childNodes[i].nodeName == "valor")
            {
                //console.log("Opa! Novo valor: " + no.childNodes[i].childNodes[0].nodeValue + ": nível: " + nivel);
                var selecionado = retornaParametro(no.childNodes[i], "selecionado") == 1;
                var desabilitar = retornaParametro(no.childNodes[i], "desabilitar");
                var desconsiderar = retornaParametro(no.childNodes[i], "desconsiderar") == 1;

                var objItem;

                if (semGroupContainer != null)
                {
                    objItem = semGroupContainer.adicionarNovosItens(no.childNodes[i].childNodes[0].nodeValue,
                                                                    selecionado,
                                                                    desabilitar,
                                                                    desconsiderar);
                }
                else
                {
                    objItem = groupAtual.adicionarItem(no.childNodes[i].childNodes[0].nodeValue,
                                                       selecionado,
                                                       desabilitar,
                                                       desconsiderar);
                }
                itensCriados.push(objItem);
            }
        }
    }    
}

function montarTelas()
{
    var dadinho = getDadinho();
    if (dadinho != null)
    {
        var denuncias = null;
        for(var i = 0; i < dadinhos.documentElement.childNodes.length; i++)
        {
            if (dadinhos.documentElement.childNodes[i].nodeName == "denuncias")
                denuncias = dadinhos.documentElement.childNodes[i];
        }

        if (denuncias != null)
        {
            //console.log("Denúncias ok...");
            montarGroup(denuncias, null, null, 0);
        }
    }
}

function desabilitarHabilitarItem(nome, desHab)
{
    for (var i = 0; i < itensCriados.length; i++)
    {
        if (itensCriados[i].objectName == nome)
            itensCriados[i].enabled = desHab;
    }
}




